#if !defined(__CRYREWARD_H__)
#define __CRYREWARD_H__

#include "ICryReward.h"
#include "Lobby/CryLobby.h"

enum ECryRewardStatus
{
	eCRS_Uninitialised = 0,	// Reward system is uninitialised
	eCRS_Initialising,			// Reward system is currently being initialised
	eCRS_Idle,							// Reward system can accept more awards
	eCRS_Working,						// Reward system cannot accept any more awards (pending queue is full) - try again later
};

class CCryReward : public CMultiThreadRefCount, public ICryReward
{
public:
	CCryReward(CCryLobby* pLobby);
	virtual ~CCryReward(void);

	// ICryReward
	virtual ECryRewardError		Award(uint32 playerID, uint32 awardID, CryLobbyTaskID* pTaskID, CryRewardCallback cb, void* pCbArg);

	virtual void							Tick(CTimeValue tv);
	
	virtual bool							IsDead()const	{ return false; }

protected:
	ECryRewardStatus	m_status;
	CCryLobby*				m_pLobby;
};

#endif // End [!defined(__CRYREWARD_H__)]
// [EOF]